.\" This manual was prepared by United States Government employees as a
.\" part of their official duties and is, therefore, a work of the U.S.
.\" Government and not subject to copyright.
.\"
.\" $Id: fedex_plus.1,v 2.1.0.2 1998/02/27 23:54:30 sauderd Exp $
.TH FEDEX_PLUS 1 "19 November 1997"
.SH NAME
fedex_plus - EXPRESS compiler and translater
.SH SYNOPSIS
fedex_plus [ options ] [ express-file ]
.nf

Command Arguments:

    options - see OPTIONS below

    express-file - the name of an EXPRESS file

.fi
.SH DESCRIPTION
.LP
fedex_plus is based on the NIST EXPRESS compiler fedex.  fedex_plus
translates an EXPRESS file into C++ code and a class library.  The C++
library includes classes for representing all the types and entities
in the input EXPRESS file, and a dictionary for describing those
classes.  The translation depends on base classes provided in the NIST
STEP Class Library.

fedex_plus does not create C++ representations of the rules,
procedures, or any EXPRESS constructs other than schemas, types and
entities.  It supports multiple schemas contained in a single file and
complex entities.  It generates code which can be integrated with
orbix and ObjectStore.

Combined with the NIST STEP Class Library, the translator provides a
"C++ working form" of an EXPRESS schema.  fedex_plus was designed for
use together with a graphical data editing system (see dataprobe(1)),
but care has been taken to keep fedex_plus separate so that it can be
used as a component of other software systems.

The fedex_plus compiler makes two passes through the EXPRESS file.  In
the first pass fedex_plus reads the syntax of the EXPRESS file and
detects any errors.  In the second pass fedex_plus converts the
EXPRESS code into C++ source code.  The C++ source code is generated
in files in the directory in which fedex_plus was run.  The files are
named according to the schema names in the input EXPRESS file.

.SH OPTIONS
.TP
.B -s|S
Tells fedex_plus to use only single-inheritance, rather than multiple
inheritance.
.TP
.B -c|C
Generates C++ classes for use with CORBA (Orbix).
.TP
.B -l|L
Prints logging code in the generated C++ classes.
.TP
.B -v
Produces a version description.
.TP
.B -d
Turns on debugging ("-d 0" describes this further).
.TP
.B -p<object>
Turns on printing when processing certain objects, where <object>
may be,
   - e  entity
   - p  procedure
   - r  rule
   - f  function
   - t  type
   - s  schema or file
   - #  pass #
   - E  everything (all of the above)
.TP
.B -w<warning>
enable warning
.TP
.B -i<warning>
disable warning, where <warning> may be,
   - none
   - all
   - circular_subtype
   - circular_select
   - entity_as_type
   - downcast
   - unknown_subtype
.PD

.RE
If no arguments are given in the command line, a list and description
of the options available are sent to stdout.

.SH OUTPUT
fedex_plus sends the following to stdout subject to the options
specified when executed:

 - a statement indicating that the Express schema is being 
   compiled

 - If errors in input encountered, a detailed list of errors
   and/or warnings including 
         - filename
         - line number
         - description of error/warning

 - If no errors encountered,
         - a statement indicating that there were no errors
           in input
         - a statement indicating that the C++ source code
           is being generated
         - any warnings/errors detected while converting to
           C++

.fi
.SH SEE ALSO
.LP
fedex(1)
.LP
dataprobe(1)
.LP
mkProbe(1)
.LP
ISO 10303-11:1994 
.I 
\Industrial Automation Systems and Integration -- Product Data \
Representation and Exchange -- Part 11: Description Methods: The \
EXPRESS Language Reference Manual.
.LP
.I
\The NIST EXPRESS Toolkit - Design and Implementation, \
Engineering Data Management: Key to Success in a Global Market, \
Proc. of the 1993 ASME Intl. Computers in Engineering Conference,
August 8-12, 1993, San Diego, pp. 167-180.
.LP
.I
\Validation Testing System: Reusable Software Component Design, NISTIR 4937, Morris, K.C., Sauderd, D., Ressler, S., October 1992.
.LP
.I
\Architecture for the Validation Testing System Software, NISTIR 4742, Morris, K.C., January 1992. 
.LP
.I
\The NIST EXPRESS Toolkit: Using Applications, NISTIR 5206, Libes, D., June 1993.
.LP
.I
\Fed-X: The NIST EXPRESS Translator, NISTIR 4822, Libes, D., April 1992.

.SH NOTE
.LP
All NISTIR documents may be obtained through the National Technical
Information Service (NTIS), Springfield VA 22161, USA.  Postscript
files may be obtained from the STEP Class Library web page
(http://www.nist.gov/scl), the Manufacturing Systems Integration
Division publications page
(http://www.mel.nist.gov/msidlibrary/pubs.htm) or by anonymous ftp
from ftp.cme.nist.gov (see
pub/subject/sc4/national/usa/nist/docs/readme.txt to determine the
appropriate file to download).

.SH BUGS
See fedex(1).

